Method and apparatus for expressing time in an output text

ABSTRACT

Methods, apparatuses, and computer program products are described herein that are configured to express a time in an output text. In some example embodiments, a method is provided that comprises identifying a time period to be described linguistically in an output text. The method of this embodiment may also include identifying a communicative context for the output text. The method of this embodiment may also include determining one or more temporal reference frames that are applicable to the time period and a domain defined by the communicative context. The method of this embodiment may also include generating a phrase specification that linguistically describes the time period based on the descriptor that is defined by a temporal reference frame of the one or more temporal reference frames. In some examples, the descriptor specifies a time window that is inclusive of at least a portion of the time period to be described linguistically.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of International Application No.PCT/IB2012/056514, filed Nov. 16, 2012, which is hereby incorporatedherein in its entirety by reference.

TECHNOLOGICAL FIELD

Embodiments of the present invention relate generally to naturallanguage generation technologies and, more particularly, relate to amethod, apparatus, and computer program product for expressing time inan output text.

BACKGROUND

In some examples, a natural language generation (NLG) system isconfigured to transform raw input data that is expressed in anon-linguistic format into a format that can be expressedlinguistically, such as through the use of natural language. Forexample, raw input data may take the form of a value of a stock marketindex over time and, as such, the raw input data may include data thatis suggestive of a time, a duration, a value and/or the like. Therefore,an NLG system may be configured to input the raw input data and outputtext that linguistically describes the value of the stock market index;for example, “securities markets rose steadily through most of themorning, before sliding downhill late in the day.”

Data that is input into a NLG system may be provided in, for example, arecurrent formal structure. The recurrent formal structure may comprisea plurality of individual fields and defined relationships between theplurality of individual fields. For example, the input data may becontained in a spreadsheet or database, presented in a tabulated logmessage or other defined structure, encoded in a ‘knowledgerepresentation’ such as the resource description framework (RDF) triplesthat make up the Semantic Web and/or the like. In some examples, thedata may include numerical content, symbolic content or the like.Symbolic content may include, but is not limited to, alphanumeric andother non-numeric character sequences in any character encoding, used torepresent arbitrary elements of information. In some examples, theoutput of the NLG system is text in a natural language (e.g. English,Japanese or Swahili), but may also be in the form of synthesized speech.

BRIEF SUMMARY

Methods, apparatuses, and computer program products are described hereinthat are configured to linguistically describe a time period detected ina data structure in an output text generated by a natural languagegeneration system. In some example embodiments, a method is providedthat comprises identifying the time period to be describedlinguistically in an output text. The method of this embodiment may alsoinclude identifying a communicative context for the output text. Themethod of this embodiment may also include determining one or moretemporal reference frames that are applicable to the time period and areappropriate for the domain defined by the communicative context. Themethod of this embodiment may also include generating a phrasespecification that linguistically describes the time period based on thedescriptor that is defined by a temporal reference frame of the one ormore temporal reference frames. In some examples, the descriptorspecifies a time window that is inclusive of at least a portion of thetime period to be described linguistically.

BRIEF DESCRIPTION OF THE DRAWINGS

Having thus described embodiments of the invention in general terms,reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and wherein:

FIG. 1 is a schematic representation of natural language generationenvironment that may benefit from some example embodiments of thepresent invention;

FIG. 2 illustrates an example expression of a time using a temporaldescription system according to some example embodiments describedherein;

FIG. 3 illustrates a block diagram of an apparatus that embodies anatural language generation system in accordance with some exampleembodiments of the present invention; and

FIG. 4 illustrates a flowchart that may be performed by a temporaldescription system in accordance with some example embodiments of thepresent invention.

DETAILED DESCRIPTION

Example embodiments will now be described more fully hereinafter withreference to the accompanying drawings, in which some, but not all,embodiments are shown. Indeed, the embodiments may take many differentforms and should not be construed as limited to the embodiments setforth herein; rather, these embodiments are provided so that thisdisclosure will satisfy applicable legal requirements. Like referencenumerals refer to like elements throughout. The terms “data,” “content,”“information,” and similar terms may be used interchangeably, accordingto some example embodiments, to refer to data capable of beingtransmitted, received, operated on, and/or stored. Moreover, the term“exemplary”, as may be used herein, is not provided to convey anyqualitative assessment, but instead merely to convey an illustration ofan example. Thus, use of any such terms should not be taken to limit thespirit and scope of embodiments of the present invention.

Natural language generation systems may be configured to describe a timeof an event, happening or the like in an output text. The time of theevent may, in some cases, be described by its numerical time, such as“11:02 am”, but more often, the time of the event may be referred to bya description of that time period, such as “late morning”, “beforelunch”, “before dawn”, “early in the semester” or the like. As such, togenerate a description of a time, a natural language generation systemmay need external information or a communicative context (e.g. thedomain of the event, the location of the reader of the output text, thetime the output text is generated in comparison to the timing of theevent and/or the like) of the output text in order to generate thepreferred or otherwise appropriate description of the time. For example,a local time of 6:00 am may be before sunrise in some areas of the worldwhereas in other locations 6:00 am may be after sunrise. In otherexamples, “early morning” may be 6 am for a soldier, whereas “earlymorning” may be 9 am for a professional.

As is described herein and according to some example embodiments, atemporal description system is provided that enables the generation of alinguistic description, based on communicative context, in the form of aphrase specification for a time period that can be incorporated in anoutput text. A time period is a space of seconds, minutes, hours, days,weeks, months or years with an established beginning date and endingdate. A time period may also include and/or be used interchangeablywith, for example, a time point, a time window, a duration of time, aninstance of time and/or the like.

In some examples, a microplanner may receive a document plan tree thatcontains or otherwise refers to a message that includes reference to atime period in a slot of the message. In order to convert the timeperiod in the message into a phrase specification or a syntacticconstituent for use in a phrase specification that may be processed by amicroplanner, the microplanner may call or otherwise access a temporaldescription system, such as the temporal description system describedherein. In some example embodiments, the temporal description system mayreference or otherwise utilize one or more temporal reference framesthat are aligned to a current communicative context and define one ormore descriptors (e.g. linguistic words or phrases that describe a timewindow) to linguistically describe the time period. A temporal referenceframe is a means of partitioning a given timeline into a set of timepartitions called descriptors that can be refined based on a hierarchy.For example, a temporal reference frame may relate to seasons and havedescriptors called winter, spring, summer and fall. Those descriptorsmay be refined, such as by using a modifier “early,” “middle” and/or“late.” As such, the temporal description system may select one of thedescriptors that at least partially include the time period received todescribe the time period, such as “during the spring.” In some examples,a temporal relationship between a time period and a descriptor may bealso be linguistically described to provide a more precise timereference, for example “early spring”.

FIG. 1 is an example block diagram of example components of an examplenatural language generation environment 100. In some exampleembodiments, the natural language generation environment 100 comprises anatural language generation system 102, message store 110, a domainmodel 112 and/or linguistic resources 114. The natural languagegeneration system 102 may take the form of, for example, a code module,a component, circuitry and/or the like. The components of the naturallanguage generation environment 100 are configured to provide variouslogic (e.g. code, instructions, functions, routines and/or the like)and/or services related to the natural language generation system, themicroplanner and/or a temporal description system.

A message store 110 or knowledge pool is configured to store one or moremessages that are accessible by the natural language generation system102. Messages are language independent data structures that correspondto informational elements in a text and/or collect together underlyingdata, referred to as slots, arguments or features, which can bepresented within a fragment of natural language such as a phrase orsentence. Messages may be represented in various ways; for example, eachslot may consist of a named attribute and its corresponding value; thesevalues may recursively consist of sets of named attributes and theirvalues, and each message may belong to one of a set of predefined types.The concepts and relationships that make up messages may be drawn froman ontology (e.g. a domain model 112) that formally represents knowledgeabout the application scenario. In some examples, the domain model 112is a representation of information about a particular domain. Forexample, a domain model may contain an ontology that specifies the kindsof objects, instances, concepts and/or the like that may exist in thedomain in concrete or abstract form, properties that may be predicatedof the objects, concepts and the like, relationships that may holdbetween the objects, concepts and the like, a communicative context andrepresentations of any specific knowledge that is required to functionin the particular domain.

In some examples, messages are created based on a requirements analysisas to what is to be communicated for a particular scenario (e.g. for aparticular domain or genre). A message typically corresponds to a factabout the underlying data (for example, the existence of some observedevent) that could be expressed via a simple sentence (although it mayultimately be realized by some other linguistic means). For example, tolinguistically describe a weather event, such as a rain storm, a usermay want to know the location of the rain storm, when it will reach theuser's location, the last time rain was detected and/or the like. Insome cases, the user may not want to know about a weather event, butinstead want to be warned in an instance in which the weather presents adanger in a particular area; for example, “high winds predicted thisevening.”

In some examples, a message is created in an instance in which the rawinput data warrants the construction of such a message. For example, awind message would only be constructed in an instance in which wind datawas present in the raw input data. Alternatively or additionally, whilemessages may correspond directly to observations taken from a raw datainput, others, however, may be derived from the observations by means ofa process of inference or based on one or more detected events. Forexample, the presence of rain may be indicative of other conditions,such as the potential for snow at some temperatures.

Messages may be instantiated based on many variations of source data,such as but not limited to time series data, time and space data, datafrom multiple data channels, an ontology, sentence or phrase extractionfrom one or more texts, a text, survey responses, structured data,unstructured data and/or the like. For example, in some cases, messagesmay be generated based on text related to multiple news articles focusedon the same or similar news story in order to generate a news story;whereas, in other examples, messages may be built based on surveyresponses and/or event data.

Messages may be annotated with an indication of their relativeimportance; this information can be used in subsequent processing stepsor by the natural language generation system 102 to make decisions aboutwhich information may be conveyed and which information may besuppressed. Alternatively or additionally, messages may includeinformation on relationships between the one or more messages.

In some example embodiments, a natural language generation system, suchas natural language generation system 102, is configured to generatewords, phrases, sentences, text or the like which may take the form of anatural language text. The natural language generation system 102comprises a document planner 130, a microplanner 132 and/or a realizer134. The natural language generation system 102 may also be in datacommunication with the message store 110, the domain model 112 and/orthe linguistic resources 114. In some examples, the linguistic resources114 include, but are not limited to, text schemas, communicativecontext, aggregation rules, reference rules, lexicalization rules and/orgrammar rules that may be used by one or more of the document planner130, the microplanner 132 and/or the realizer 134. Other naturallanguage generation systems may be used in some example embodiments,such as a natural language generation system as described in BuildingNatural Language Generation Systems by Ehud Reiter and Robert Dale,Cambridge University Press (2000), which is incorporated by reference inits entirety herein.

The document planner 130 is configured to input the one or more messagesfrom the message store 110 and to determine how to arrange thosemessages in order to describe one or more patterns in the one or moredata channels derived from the raw input data. The document planner 130may also comprise a content determination process that is configured toselect the messages, such as the messages that contain a representationof the data that is to be output via a natural language text.

The document planner 130 may also comprise a structuring process thatdetermines the order of messages to be included in a text. In someexample embodiments, the document planner 130 may access one or moretext schemas for the purposes of content determination and documentstructuring. A text schema is a rule set that defines the order in whicha number of messages are to be presented in a document. For example, arain message may be described prior to a temperature message. In otherexamples, a wind message may be described after, but in a specificrelation to, the rain message.

The output of the document planner 130 may be a tree-structured objector other data structure that is referred to as a document plan. In aninstance in which a tree-structured object is chosen for the documentplan, the leaf nodes of the tree may contain the messages, and theintermediate nodes of the tree structure object may be configured toindicate how the subordinate nodes are related (e.g. elaboration,consequence, contrast, sequence and/or the like) to each other. Anexample document plan is shown with respect to document plan 202 of FIG.2. An example message is also shown in FIG. 2 as message 206.

The microplanner 132 is configured to construct a text specificationbased on the document plan from the document planner 130, such that thedocument plan may be expressed in natural language. In some exampleembodiments, the microplanner 132 may convert the one or more messagesin the document plan into one or more phrase specifications in a textspecification. In some example embodiments, the microplanner 132 mayperform aggregation, lexicalization and referring expression generation.In some examples, aggregation includes, but is not limited to,determining whether two or more messages can be combined togetherlinguistically to produce a more complex phrase specification. Forexample, one or more messages may be aggregated so that both of themessages can be described by a single sentence. In some examples,lexicalization includes, but is not limited to, choosing particularwords for the expression of concepts and relations. In some examples,referring expression generation includes, but is not limited to,choosing how to refer to an entity so that it can be unambiguouslyidentified by the reader.

In some example embodiments, the microplanner 132 may embody orotherwise may be in data communication with a temporal descriptionsystem 140. The microplanner 132 may interact with the temporaldescription system 140 in an instance in which the microplanner detectsa time period (e.g. a time point, a time window, a duration or the like)in a slot of a message in the document plan tree received or otherwiseaccessed via the document planner 130. As such, the temporal descriptionsystem 140 is configured to determine or otherwise identify thecommunicative context of an output text as is provided via the domainmodel 112 and/or the linguistic resources 114. A communicative contextis a factor or combinations of factors of the environment in which theevents to be described are occurring and which have an influence on theoutput text. In some example embodiments, the factor or combination offactors may include a domain for which the text is to be generated (e.g.medical, weather, academic, sports and/or the like), a location of areader of the output text or a location described by the output text(e.g. Scotland may have a later sunrise when compared to Italy), thecurrent time that the output text is being generated (e.g. “6 am” may bean appropriate descriptor for event tomorrow, but “in the morning nextmonth” may be a more appropriate descriptor to identify an event in thefuture), the time of the event (e.g. in order to set the tense of averb), user or reader preferences (e.g. “early morning,” “6 am” or“0600”), language preferences (e.g. descriptors chosen based on regionaldialects), and/or the like.

In some example embodiments, the temporal description system 140 may beconfigured to output a phrase specification that describes the inputtime period. The temporal description system 140 may linguisticallydescribe the time period in the phrase specification using generic timedescriptors, such as a day name, a date, an hour or the like. However,in other example embodiments, the temporal description system 140 maylinguistically describe the time period using a descriptor that isdefined by a temporal reference frame. A temporal reference frame is aset of time partitionings that are used to describe time in a particulardomain (e.g. trimesters in pregnancy, semesters in a university and/orthe like). A descriptor is the linguistically describable name of thevarious partitionings within a temporal reference frame (e.g. first,second and third trimesters of a pregnancy, fall semester and springsemester in a university and/or the like). The various partitionings maybe further refined by using modifiers, may be refined based on ahierarchy and/or the like. In some examples, the temporal referenceframes are configured to be aligned to or otherwise instantiated basedon the communicative context (e.g. first trimester aligned to theconception date of a pregnancy, fall semester aligned to the fall startdate, morning tied to a sunrise time and/or the like) by the temporaldescription system 140. Descriptors may also be aligned within thetemporal reference frames in some example embodiments.

The temporal description system 140, in some example embodiments, maythen select a temporal reference frame and a descriptor from theavailable temporal reference frames. In some examples, the temporalreference frame and a descriptor may be chosen based on whether aparticular descriptor describes the entire time period. In otherexamples, a domain model or the linguistic resources may provide apreferred ordering of temporal reference frames to be used in aparticular output text. In other examples, a temporal reference frameand descriptor may be chosen based on previously chosen temporalreference frames or previously generated phrase specifications. By wayof example, a previously referred-to temporal reference frame may besolar movement (e.g. before sunrise) and, as such, the temporaldescription system 140 may subsequently use a day period (e.g. morningor afternoon) temporal reference frame to add to readability and/orvariety in the output text.

In some examples, the temporal reference frame and descriptor may bechosen based on a scoring system. The scoring system may be based on theability of a descriptor to describe the entire time period, thedetection of false positives (e.g. describing a time period that doesnot include the event) or false negatives (e.g. failing to describe atime period that contains the event) based on the descriptor and/or thelike. In some examples, the temporal reference frame may be selected bythe temporal description system 140 randomly. Alternatively oradditionally, multiple descriptors within a reference frame may be usedto describe a time period.

Once a temporal reference frame and one or more descriptors have beenidentified, the temporal description system 140 is configured todetermine a temporal relationship between the time period and the one ormore descriptors. For example, if a single descriptor, such as dayperiod, is used, a temporal relationship may be defined as “early,”“late” or “mid” if the time period relates to the descriptor in such away (e.g. 8 am is “early in the day”). In an instance in which two ormore descriptors are used, the temporal relationship between the timeperiod and the descriptors may be defined by describing the time periodas “between” or “overlapping” (e.g. “between lunch and dinner” or “shift1 overlaps shift 2”).

Using the temporal reference frame, the one or more descriptors and thedetermined relationship, the temporal description system 140 isconfigured to generate a phrase specification subject to one or moreconstraints. Constraints may include, but are not limited to,constraints imposed by a domain model, user preferences, languageconstraints, output text length constraints, readability and varietyconstraints, previously referred to temporal reference frames, previousphrase specifications and/or the like. The temporal description systemmay then output or otherwise provide the phrase specification to themicroplanner 132 to be used in a text specification as its own phrasespecification or more likely incorporated inside another phrasespecification. The output of the microplanner 132, in some exampleembodiments, is a tree-structured realization specification whoseleaf-nodes are phrase specifications, and whose internal nodes expressrhetorical relations between the leaf nodes.

A realizer 134 is configured to traverse a text specification output bythe microplanner 132 to express the text specification in naturallanguage. The realization process that is applied to each phrasespecification and further makes use of a grammar (e.g. the grammar ofthe linguistic resources 114), which specifies the valid syntacticstructures in the language and further provides a way of mapping fromphrase specifications into the corresponding natural language sentences.The output of the process is, in some example embodiments, a naturallanguage text. In some examples, the natural language text may includeembedded mark-up.

FIG. 2 illustrates an example expression of a time period using atemporal description system according to some example embodimentsdescribed herein. In some examples, and by using the systems and methodsdescribed with respect to FIG. 1, a time period described in a messagemay be linguistically described via a temporal description system. Oneor more non-limiting examples of various operations of the temporaldescription system will now be described with respect to FIG. 2.

In one example, the timing of weather events may make use of domainspecific temporal reference frames, such solar movement (e.g. before orafter sunrise), day period (e.g. morning, afternoon, evening), mealtime(e.g. around lunch), time (e.g. before 5 pm) and/or the like. As such,and according to some example embodiments, a microplanner may detect amessage, such as message 206 in document plan 202 that contains a timeperiod such as a start time (e.g. StartTime=0600 11 October 2012) and anend time (e.g. EndTime=1500 11 October 2012). The microplanner, whenconverting the message to a phrase specification, is configured to callor otherwise access the temporal description system 140 to convert thetime period defined by the StartTime and the EndTime into a phrasespecification, such as phrase specification 208 that is part of phrasespecification 210 in the text specification 204 (e.g. “from earlymorning into the afternoon”). Using the message 206 and the phrasespecification 210, a text may be generated (e.g. via the realizer) suchas: “rain is expected from early morning into the afternoon.”

In further examples, a document plan may have multiple messages havingreferences to one or more time periods. As such, multiple temporalreference frames may be used to describe the multiple time periods. Forexample, the following text uses four temporal reference frames:“showers are likely to develop before sunrise before clearing into themorning. There should be some sunny spells around lunchtime lastinguntil around 5 pm.” The four example temporal reference frames selectedby the temporal description system, in this example, are: solar movement(“before sunrise”), day period (“into the morning”), mealtime (“aroundlunchtime”) and time (“around 5 pm”). In other examples, the temporaldescription system 140 may also select alternate temporal referenceframes. Alternatively or additionally, the temporal reference frames maybe used in a different order, such as is shown in the following text:“Showers are likely to develop during the early morning before clearinglater. There should be some sunny spells from midday lasting into theevening.”

By way of another example in a medical domain, a time period used todescribe a key event during a pregnancy could be described as occurringduring the following non-exhaustive list of temporal reference frames:month number (e.g. “in the 6th month”), trimester (e.g. “during the 2ndtrimester”), month name (e.g. “during July”), week number (e.g. “in week30”), day number (e.g. “around day 210”) as well as simply giving a dateor time (e.g. “Friday”, “July 5”, “5 am” or the like). By way of furtherexample, the temporal reference frame TRIMESTER may include exampledescriptors “first trimester”, “second trimester” or “third trimester”.As such, using the domain-specific temporal reference frames, an exampleoutput text may include three descriptors that belong to three differenttemporal reference frames: “During the 2nd trimester, the baby developedas expected. There were concerns during April that the baby was startingto turn but these concerns have subsided due to the baby turning back tothe normal position on day 90 of this pregnancy.” In this example, thebaby's development has been detected as fine for a 3-month-long period.Without the introduction of the TRIMESTER temporal reference frame,another descriptor may have been used, such as “May to July,” but thismay, in some examples, result in fairly repetitive and limited text. Byenabling the temporal description system 140 to describe the same timespan using multiple descriptors, advantageously, for example, a greatervariation in descriptors may be achieved in the resultant output text.Alternatively or additionally, temporal reference frames may be reusedin some example embodiments.

In some examples, the temporal description system 140 is configured touse descriptors such as sunrise and sunset times for a specific locationalong with the time of day and span of an input time period to generatean output text to linguistically describe a time period. By making useof sunrise and sunset times, it is also possible to take into accountthe time of year when creating the linguistic description of the inputtime period. For example, during the summer, the night time is shorterthan in the middle of winter. Therefore the time period that can belinguistically described as “morning” covers a longer time period if theinput time period is during the summer than if the input time period wasduring the winter. Further, during the winter, the sun may only be up inthe morning for a few hours in some locations, therefore the temporaldescription system 140 may not need to describe a relationship betweenthe time period and the descriptor and, as such, may drop “early” from“early morning.”

FIG. 3 is an example block diagram of an example computing device forpracticing embodiments of an example temporal description system. Inparticular, FIG. 3 shows a computing system 300 that may be utilized toimplement a natural language generation environment 100 having a naturallanguage generation system 102 including, in some examples, a documentplanner 130, a microplanner 132 and/or a realizer 134 and/or a userinterface 320. One or more general purpose or special purpose computingsystems/devices may be used to implement the natural language generationsystem 102 and/or the user interface 320. In addition, the computingsystem 300 may comprise one or more distinct computing systems/devicesand may span distributed locations. In some example embodiments, thenatural language generation system 102 may be configured to operateremotely via the network 350. In other example embodiments, apre-processing module or other module that requires heavy computationalload may be configured to perform that computational load and thus maybe on a remote device or server. For example, the realizer 134 or thetemporal description system may be accessed remotely. In other exampleembodiments, a user device may be configured to operate or otherwiseaccess the natural language generation system 102. Furthermore, eachblock shown may represent one or more such blocks as appropriate to aspecific example embodiment. In some cases one or more of the blocks maybe combined with other blocks. Also, the natural language generationsystem 102 may be implemented in software, hardware, firmware, or insome combination to achieve the capabilities described herein.

In the example embodiment shown, computing system 300 comprises acomputer memory (“memory”) 302, a display 304, one or more processors306, input/output devices 308 (e.g., keyboard, mouse, CRT or LCDdisplay, touch screen, gesture sensing device and/or the like), othercomputer-readable media 310, and communications interface 312. Theprocessor 306 may, for example, be embodied as various means includingone or more microprocessors with accompanying digital signalprocessor(s), one or more processor(s) without an accompanying digitalsignal processor, one or more coprocessors, one or more multi-coreprocessors, one or more controllers, processing circuitry, one or morecomputers, various other processing elements including integratedcircuits such as, for example, an application-specific integratedcircuit (ASIC) or field-programmable gate array (FPGA), or somecombination thereof. Accordingly, although illustrated in FIG. 3 as asingle processor, in some embodiments the processor 306 comprises aplurality of processors. The plurality of processors may be in operativecommunication with each other and may be collectively configured toperform one or more functionalities of the temporal description systemas described herein.

The natural language generation system 102 is shown residing in memory302. The memory 302 may comprise, for example, transitory and/ornon-transitory memory, such as volatile memory, non-volatile memory, orsome combination thereof. Although illustrated in FIG. 3 as a singlememory, the memory 302 may comprise a plurality of memories. Theplurality of memories may be embodied on a single computing device ormay be distributed across a plurality of computing devices collectivelyconfigured to function as the natural language system, the microplannerand/or the temporal description system. In various example embodiments,the memory 302 may comprise, for example, a hard disk, random accessmemory, cache memory, flash memory, a compact disc read only memory(CD-ROM), digital versatile disc read only memory (DVD-ROM), an opticaldisc, circuitry configured to store information, or some combinationthereof.

In other embodiments, some portion of the contents, some or all of thecomponents of the natural language generation system 102 may be storedon and/or transmitted over the other computer-readable media 310. Thecomponents of the natural language generation system 102 preferablyexecute on one or more processors 306 and are configured to enableoperation of a temporal description system, as described herein.

Alternatively or additionally, other code or programs 340 (e.g., anadministrative interface, one or more application programming interface,a Web server, and the like) and potentially other data repositories,such as other data sources 330, also reside in the memory 302, andpreferably execute on one or more processors 306. Of note, one or moreof the components in FIG. 3 may not be present in any specificimplementation. For example, some embodiments may not provide othercomputer readable media 310 or a display 304.

The natural language generation system 102 is further configured toprovide functions such as those described with reference to FIG. 1. Thenatural language generation system 102 may interact with the network350, via the communications interface 312, with remote data sources 352(e.g. remote reference data, remote performance data, remote aggregationdata, remote knowledge pools and/or the like), third-party contentproviders 354 and/or client devices 356. The network 350 may be anycombination of media (e.g., twisted pair, coaxial, fiber optic, radiofrequency), hardware (e.g., routers, switches, repeaters, transceivers),and protocols (e.g., TCP/IP, UDP, Ethernet, Wi-Fi, WiMAX, Bluetooth)that facilitate communication between remotely situated humans and/ordevices. In some instances, the network 350 may take the form of theinternet or may be embodied by a cellular network such as an LTE basednetwork. In this regard, the communications interface 312 may be capableof operating with one or more air interface standards, communicationprotocols, modulation types, access types, and/or the like. The clientdevices 356 include desktop computing systems, notebook computers,mobile phones, smart phones, personal digital assistants, tablets and/orthe like. In some example embodiments, a client device may embody someor all of computing system 300.

In an example embodiment, components/modules of the natural languagegeneration system 102 are implemented using standard programmingtechniques. For example, the natural language generation system 102 maybe implemented as a “native” executable running on the processor 306,along with one or more static or dynamic libraries. In otherembodiments, the natural language generation system 102 may beimplemented as instructions processed by a virtual machine that executesas one of the other programs 340. In general, a range of programminglanguages known in the art may be employed for implementing such exampleembodiments, including representative implementations of variousprogramming language paradigms, including but not limited to,object-oriented (e.g., Java, C++, C#, Visual Basic.NET, Smalltalk, andthe like), functional (e.g., ML, Lisp, Scheme, and the like), procedural(e.g., C, Pascal, Ada, Modula, and the like), scripting (e.g., Perl,Ruby, Python, JavaScript, VBScript, and the like), and declarative(e.g., SQL, Prolog, and the like).

The embodiments described above may also use synchronous or asynchronousclient-server computing techniques. Also, the various components may beimplemented using more monolithic programming techniques, for example,as an executable running on a single processor computer system, oralternatively decomposed using a variety of structuring techniques,including but not limited to, multiprogramming, multithreading,client-server, or peer-to-peer, running on one or more computer systemseach having one or more processors. Some embodiments may executeconcurrently and asynchronously, and communicate using message passingtechniques. Equivalent synchronous embodiments are also supported. Also,other functions could be implemented and/or performed by eachcomponent/module, and in different orders, and by differentcomponents/modules, yet still achieve the described functions.

In addition, programming interfaces to the data stored as part of thenatural language generation system 102, such as by using one or moreapplication programming interfaces can be made available by mechanismssuch as through application programming interfaces (API) (e.g. C, C++,C#, and Java); libraries for accessing files, databases, or other datarepositories; through scripting languages such as XML; or through Webservers, FTP servers, or other types of servers providing access tostored data. The message store 110, the domain model 112 and/or thelinguistic resources 114 may be implemented as one or more databasesystems, file systems, or any other technique for storing suchinformation, or any combination of the above, including implementationsusing distributed computing techniques. Alternatively or additionally,the message store 110, the domain model 112 and/or the linguisticresources 114 may be local data stores but may also be configured toaccess data from the remote data sources 352.

Different configurations and locations of programs and data arecontemplated for use with techniques described herein. A variety ofdistributed computing techniques are appropriate for implementing thecomponents of the illustrated embodiments in a distributed mannerincluding but not limited to TCP/IP sockets, RPC, RMI, HTTP, WebServices (XML-RPC, JAX-RPC, SOAP, and the like). Other variations arepossible. Also, other functionality could be provided by eachcomponent/module, or existing functionality could be distributed amongstthe components/modules in different ways, yet still achieve thefunctions described herein.

Furthermore, in some embodiments, some or all of the components of thenatural language generation system 102 may be implemented or provided inother manners, such as at least partially in firmware and/or hardware,including, but not limited to one or more ASICs, standard integratedcircuits, controllers executing appropriate instructions, and includingmicrocontrollers and/or embedded controllers, FPGAs, complexprogrammable logic devices (“CPLDs”), and the like. Some or all of thesystem components and/or data structures may also be stored as contents(e.g., as executable or other machine-readable software instructions orstructured data) on a computer-readable medium so as to enable orconfigure the computer-readable medium and/or one or more associatedcomputing systems or devices to execute or otherwise use or provide thecontents to perform at least some of the described techniques. Some orall of the system components and data structures may also be stored asdata signals (e.g., by being encoded as part of a carrier wave orincluded as part of an analog or digital propagated signal) on a varietyof computer-readable transmission mediums, which are then transmitted,including across wireless-based and wired/cable-based mediums, and maytake a variety of forms (e.g., as part of a single or multiplexed analogsignal, or as multiple discrete digital packets or frames). Suchcomputer program products may also take other forms in otherembodiments. Accordingly, embodiments of this disclosure may bepracticed with other computer system configurations.

FIG. 4 is a flowchart illustrating an example method performed by atemporal description system in accordance with some example embodimentsdescribed herein. As is shown in operation 402, an apparatus may includemeans, such as the microplanner 132, the temporal description system140, the processor 306, or the like, for receiving a time period to bedescribed linguistically in an output text. In some example embodiments,the time period may define a time point or a series of time points. Asis shown in operation 404, an apparatus may include means, such as themicroplanner 132, the temporal description system 140, the processor306, or the like, for identifying a communicative context for the outputtext.

As is shown in operation 406, an apparatus may include means, such asthe microplanner 132, the temporal description system 140, the processor306, or the like, for determining one or more temporal reference framesthat are applicable to the time period and are appropriate for thedomain defined by the communicative context. For example, the temporalreference frame that is partitioned into trimesters that define apregnancy term would likely only be appropriate for the medical domainand not for the weather domain. As is shown in operation 408, anapparatus may include means, such as the microplanner 132, the temporaldescription system 140, the processor 306, or the like, forinstantiating or otherwise aligning the one or more temporal referenceframes to the communicative context. For example, if the temporalreference frame is partitioned into trimesters that define a pregnancyterm, then an example first trimester would be instantiated with theconception date and a date three months later.

As is shown in operation 410, an apparatus may include means, such asthe microplanner 132, the temporal description system 140, the processor306, or the like, for selecting a descriptor within a temporal referenceframe of the one or more temporal reference frames based on the timeperiod and one or more previously generated phrase specifications. As isdescribed herein, a temporal reference frame may be chosen at random,may be selected by a user, may be dictated by a domain model and/or thelike. In some examples, a temporal reference frame may be different thanthe previously referred-to temporal reference frame. In some exampleembodiments, each temporal reference frame of the one or more temporalreference frames are partitioned, such that a descriptor is configuredto linguistically describe each partition (e.g. each partition ordescriptor has a linguistically-expressible name).

As is shown in operation 412, an apparatus may include means, such asthe microplanner 132, the temporal description system 140, the processor306, or the like, for determining a temporal relationship between thetime period and the descriptor. For example the time period may be atthe beginning of a descriptor. As such, the relationship may, forexample, be “early” in the descriptor “March.” As is shown in operation414, an apparatus may include means, such as the microplanner 132, thetemporal description system 140, the processor 306, or the like, forgenerating a phrase specification based on the descriptor and thetemporal relationship between the time period and the descriptor. As isshown in operation 416, an apparatus may include means, such as themicroplanner 132, the temporal description system 140, the processor306, or the like, for verifying the phrase specification using one ormore constraints. A constraint may include, but is not limited to,verifying that the same descriptor is not used consecutively in the samesentence, that a descriptor is not used incorrectly within acommunicative context (e.g. 6 am is not described as “morning” when thesun has not yet risen), context based constraints, constraints due tothe text length and/or the like.

FIG. 4 illustrates an example flowchart of the operations performed byan apparatus, such as computing system 300 of FIG. 3, in accordance withexample embodiments of the present invention. It will be understood thateach block of the flowchart, and combinations of blocks in theflowchart, may be implemented by various means, such as hardware,firmware, one or more processors, circuitry and/or other devicesassociated with execution of software including one or more computerprogram instructions. For example, one or more of the proceduresdescribed above may be embodied by computer program instructions. Inthis regard, the computer program instructions which embody theprocedures described above may be stored by a memory 302 of an apparatusemploying an embodiment of the present invention and executed by aprocessor 306 in the apparatus. As will be appreciated, any suchcomputer program instructions may be loaded onto a computer or otherprogrammable apparatus (e.g., hardware) to produce a machine, such thatthe resulting computer or other programmable apparatus provides forimplementation of the functions specified in the flowchart's block(s).These computer program instructions may also be stored in anon-transitory computer-readable storage memory that may direct acomputer or other programmable apparatus to function in a particularmanner, such that the instructions stored in the computer-readablestorage memory produce an article of manufacture, the execution of whichimplements the function specified in the flowchart's block(s). Thecomputer program instructions may also be loaded onto a computer orother programmable apparatus to cause a series of operations to beperformed on the computer or other programmable apparatus to produce acomputer-implemented process such that the instructions which execute onthe computer or other programmable apparatus provide operations forimplementing the functions specified in the flowchart's block(s). Assuch, the operations of FIG. 4, when executed, convert a computer orprocessing circuitry into a particular machine configured to perform anexample embodiment of the present invention. Accordingly, the operationsof FIG. 4 define an algorithm for configuring a computer or processor,to perform an example embodiment. In some cases, a general purposecomputer may be provided with an instance of the processor whichperforms the algorithm of FIG. 4 to transform the general purposecomputer into a particular machine configured to perform an exampleembodiment.

Accordingly, blocks of the flowchart support combinations of means forperforming the specified functions and combinations of operations forperforming the specified functions. It will also be understood that oneor more blocks of the flowchart, and combinations of blocks in theflowchart, can be implemented by special purpose hardware-based computersystems which perform the specified functions, or combinations ofspecial purpose hardware and computer instructions.

In some example embodiments, certain ones of the operations herein maybe modified or further amplified as described below. Moreover, in someembodiments additional optional operations may also be included. Itshould be appreciated that each of the modifications, optional additionsor amplifications described herein may be included with the operationsherein either alone or in combination with any others among the featuresdescribed herein.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Moreover, although the foregoing descriptions and the associateddrawings describe example embodiments in the context of certain examplecombinations of elements and/or functions, it should be appreciated thatdifferent combinations of elements and/or functions may be provided byalternative embodiments without departing from the scope of the appendedclaims. In this regard, for example, different combinations of elementsand/or functions than those explicitly described above are alsocontemplated as may be set forth in some of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

That which is claimed:
 1. A computer implemented method comprising:identifying, using a processor, a time period to be describedlinguistically in an output text; identifying, using the processor, acommunicative context for the output text; determining, using theprocessor, one or more temporal reference frames that are applicable tothe time period and a domain defined by the communicative context; andgenerating, using the processor, a phrase specification thatlinguistically describes the time period based on a descriptor that isdefined by a temporal reference frame of the one or more temporalreference frames, wherein the descriptor specifies a time window that isinclusive of at least a portion of the time period to be describedlinguistically.
 2. A method according to claim 1, further comprising:instantiating or aligning, using the processor, the one or more temporalreference frames to the communicative context; and selecting, using theprocessor, the descriptor defined by the temporal reference frame of theone or more temporal reference frames based on the time period and oneor more previously generated phrase specifications.
 3. A methodaccording to claim 1, further comprising: determining, using theprocessor, a temporal relationship between the time period and thedescriptor, wherein the phrase specification is further based on thetemporal relationship between the time period and the descriptor.
 4. Amethod according to claim 3, further comprising: verifying, using theprocessor, the phrase specification using one or more constraints.
 5. Amethod according to claim 1, further comprising: identifying, using theprocessor, another time period to be described linguistically; anddetermining, using the processor, a descriptor that is defined byanother temporal reference frame of the one or more temporal referenceframes.
 6. A method according to claim 5, wherein the descriptor for theanother time period is different from the descriptor used for the timeperiod.
 7. A method according to claim 1, wherein each temporalreference frame of the one or more temporal reference frames arepartitioned, such that a descriptor is configured to linguisticallydescribe each partition.
 8. A method according to claim 7, wherein thecommunicative context is defined by at least one of a domain model, acurrent time or a current location.
 9. A method according to claim 1,wherein the time period comprises at least one of a time point or aseries of time points.
 10. A method of claim 1, further comprising:determining, using the processor, that a single descriptor does notspecify a time window that is inclusive of the time period to bedescribed linguistically; and determining, using the processor, two ormore descriptors that are defined by a temporal reference frame of theone or more temporal reference frames, wherein the two or moredescriptors specify a time window that is inclusive of the time periodto be described linguistically.
 11. An apparatus comprising: at leastone processor; and at least one memory including computer program code,at least one memory and the computer program code configured to, withthe at least one processor, cause the apparatus to: at least: identify atime period to be described linguistically in an output text; identify acommunicative context for the output text; determine one or moretemporal reference frames that are applicable to the time period and adomain defined by the communicative context; and generate a phrasespecification that linguistically describes the time period based on adescriptor that is defined by a temporal reference frame of the one ormore temporal reference frames, wherein the descriptor specifies a timewindow that is inclusive of at least a portion of the time period to bedescribed linguistically.
 12. An apparatus according to claim 11,wherein the at least one memory including the computer program code isfurther configured to, with the at least one processor, cause theapparatus to: align the one or more temporal reference frames to thecommunicative context; and select the descriptor defined by the temporalreference frame of the one or more temporal reference frames based onthe time period and one or more previously generated phrasespecifications.
 13. An apparatus according to claim 11, wherein the atleast one memory including the computer program code is furtherconfigured to, with the at least one processor, cause the apparatus to:determine a temporal relationship between the time period and thedescriptor, wherein the phrase specification is further based on thetemporal relationship between the time period and the descriptor.
 14. Anapparatus according to claim 13, wherein the at least one memoryincluding the computer program code is further configured to, with theat least one processor, cause the apparatus to: verify the phrasespecification using one or more constraints.
 15. An apparatus accordingto claim 11, wherein the at least one memory including the computerprogram code is further configured to, with the at least one processor,cause the apparatus to: identify another time period to be describedlinguistically; and determine a descriptor that is defined by anothertemporal reference frame of the one or more temporal reference frames.16. An apparatus according to claim 15, wherein the descriptor for theanother time period is different from the descriptor used for the timeperiod.
 17. An apparatus according to claim 11, wherein each temporalreference frame of the one or more temporal reference frames arepartitioned, such that a descriptor is configured to linguisticallydescribe each partition.
 18. An apparatus according to claim 17, whereinthe communicative context is defined by at least one of a domain model,a current time or a current location.
 19. An apparatus according toclaim 11, wherein the time period comprises at least one of a time pointor a series of time points.
 20. An apparatus of claim 11, wherein the atleast one memory including the computer program code is furtherconfigured to, with the at least one processor, cause the apparatus to:determine that a single descriptor does not specify a time window thatis inclusive of the time period to be described linguistically; anddetermine two or more descriptors that are defined by a temporalreference frame of the one or more temporal reference frames, whereinthe two or more descriptors specify a time window that is inclusive ofthe time period to be described linguistically.
 21. A computer programproduct comprising: at least one computer readable non-transitory memorymedium having program code instructions stored thereon, the program codeinstructions which when executed by an apparatus cause the apparatus atleast to: identify a time period to be described linguistically in anoutput text; identify a communicative context for the output text;determine one or more temporal reference frames that are applicable tothe time period and a domain defined by the communicative context; andgenerate a phrase specification that linguistically describes the timeperiod based on a descriptor that is defined by a temporal referenceframe of the one or more temporal reference frames, wherein thedescriptor specifies a time window that is inclusive of at least aportion of the time period to be described linguistically.
 22. Acomputer program product according to claim 21, further comprisingprogram code instructions configured to: align the one or more temporalreference frames to the communicative context; and select the descriptordefined by the temporal reference frame of the one or more temporalreference frames based on the time period and one or more previouslygenerated phrase specifications.
 23. A computer program productaccording to claim 21, further comprising program code instructionsconfigured to: determine a temporal relationship between the time periodand the descriptor, wherein the phrase specification is further based onthe temporal relationship between the time period and the descriptor.24. A computer program product according to claim 23, further comprisingprogram code instructions configured to: verify the phrase specificationusing one or more constraints.
 25. A computer program product accordingto claim 21, further comprising program code instructions configured to:identify another time period to be described linguistically; anddetermine a descriptor that is defined by another temporal referenceframe of the one or more temporal reference frames.
 26. A computerprogram product according to claim 25, wherein the descriptor for theanother time period is different from the descriptor used for the timeperiod.
 27. A computer program product according to claim 21, whereineach temporal reference frame of the one or more temporal referenceframes are partitioned, such that a descriptor is configured tolinguistically describe each partition.
 28. A computer program productaccording to claim 27, wherein the communicative context is defined byat least one of a domain model, a current time or a current location.29. A computer program product according to claim 21, wherein the timeperiod comprises at least one of a time point or a series of timepoints.
 30. A computer program product of claim 21, further comprisingprogram code instructions configured to: determine that a singledescriptor does not specify a time window that is inclusive of the timeperiod to be described linguistically; and determine two or moredescriptors that are defined by a temporal reference frame of the one ormore temporal reference frames, wherein the two or more descriptorsspecify a time window that is inclusive of the time period to bedescribed linguistically.